package com.niiwoo.civet.account.dto.bill;

import com.niiwoo.civet.account.enums.BillStatusEnum;
import com.niiwoo.civet.account.enums.InoutTypeEnum;
import com.niiwoo.civet.account.enums.OrderTypeEnum;
import com.niiwoo.civet.base.enums.BorrowProjectTypeEnum;
import com.niiwoo.civet.base.enums.ChannelCodeEnum;
import com.niiwoo.civet.trade.enums.LoanTypeEnum;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.List;

/**
 * 记账并且变更账户余额DTO
 * Created by xiaoyingping on 2018/4/24.
 */
@Getter
@Setter
public class AddBillAndChangeBalanceDTO {
    /**
     * 必传
     */
    private Long accountId;  //账户ID
    private BigDecimal amount;  //本次账单的金额(只能为非负数)
    private InoutTypeEnum inoutType;//收入or支出
    private Long orderId;  //订单ID
    private OrderTypeEnum orderType;//订单类型
    private String requestNo;//存管请求流水
    private BillStatusEnum status;//账单状态
    private ChannelCodeEnum channelCode;//投资渠道
    private List<AddBillDetailDTO> addBillDetailDTOList;//资金明细项List



    /**
     * 项目相关的属性(非必传)
     */
    private Long projectId;//项目ID
    private BorrowProjectTypeEnum projectType;//项目类型
    private String projectTitle;//项目标题
    private LoanTypeEnum loanTypeEnum;
    private Long projectPackageId;//智能投产品包id

    /**
     * 当前期数和总期数：还款、收款时必传
     */
    private Integer currentPeriod;//当前期数
    private Integer totalPeriod;//总期数


    /**
     * 其它(非必传)
     */
    private Long userId;  //用户ID(第三方账单没有账户)
    private Long investId; //投资ID
    private Long guaranteeId; //担保ID
    private String remark;
    private Byte isVisible;//就否显示账单
    private String relationUserId;//交易对象的用户ID
    private Long relationAccountId;//交易对象的账户ID



}
